package com.acsior.hibernate.vo;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import com.acsior.dac.impl.hibernate.vo.GeneratorKey;

/**
 * OrderBudgetService entity. @author MyEclipse Persistence Tools <b><i>powered
 * by Belev</i></b>
 */
@Entity
@Table(name = "order_budget_services")
@GeneratorKey(tableName = "service_requests")
public class OrderBudgetServiceVO extends OrderServiceVO {

	private static final long serialVersionUID = 8964044207586856467L;

	@Temporal(TemporalType.DATE)
	@Column(name = "date_from", length = 10)
	private Date dateFrom;

	@Temporal(TemporalType.DATE)
	@Column(name = "date_to", length = 10)
	private Date dateTo;

	@Column(name = "document_date", length = 23)
	private Date documentDate;

	@Column(name = "document_number", length = 50)
	private String documentNumber;

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "nom_budget_document_type_id")
	private NomBudgetDocumentTypeVO nomBudgetDocumentType;

	@Column(name = "payment_type", nullable = false, length = 50)
	private String paymentType;

	@Column(name = "reason", nullable = false, length = 100)
	private String reason;

	/** default constructor */
	public OrderBudgetServiceVO() {
		super();
	}

	/** @return the dateFrom */
	public Date getDateFrom() {
		return this.dateFrom;
	}

	/** @return the dateTo */
	public Date getDateTo() {
		return this.dateTo;
	}

	/** @return the documentDate */
	public Date getDocumentDate() {
		return this.documentDate;
	}

	/** @return the documentNumber */
	public String getDocumentNumber() {
		return this.documentNumber;
	}

	/** @return the nomBudgetDocumentType */
	public NomBudgetDocumentTypeVO getNomBudgetDocumentType() {
		return this.nomBudgetDocumentType;
	}

	/** @return the paymentType */
	public String getPaymentType() {
		return this.paymentType;
	}

	/** @return the reason */
	public String getReason() {
		return this.reason;
	}

	/** @param dateFrom */
	public void setDateFrom(Date dateFrom) {
		this.dateFrom = dateFrom;
	}

	/** @param dateTo */
	public void setDateTo(Date dateTo) {
		this.dateTo = dateTo;
	}

	/** @param documentDate */
	public void setDocumentDate(Date documentDate) {
		this.documentDate = documentDate;
	}

	/** @param documentNumber */
	public void setDocumentNumber(String documentNumber) {
		this.documentNumber = documentNumber;
	}

	/** @param nomBudgetDocumentType */
	public void setNomBudgetDocumentType(NomBudgetDocumentTypeVO nomBudgetDocumentType) {
		this.nomBudgetDocumentType = nomBudgetDocumentType;
	}

	/** @param paymentType */
	public void setPaymentType(String paymentType) {
		this.paymentType = paymentType;
	}

	/** @param reason */
	public void setReason(String reason) {
		this.reason = reason;
	}

}